home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / fortran / bcf7713b.zip / ENGLISH.TXT < prev    next >
Text File  |  1992-12-01  |  13KB  |  358 lines

  1.              ╔═══════════════════════════════════════════════════╗
  2.              ║                 BC-FORTRAN77 Vers 1.3b            ║
  3.              ║      copyright: Andre Koestli                     ║
  4.              ║           1990  Martin Luther Str.63              ║
  5.              ║                 D700 Stuttgart 50                 ║
  6.              ╠═══════════════════════════════════════════════════╣
  7.              ║Version "b" of BC-FORTRAN77, comprised of the 5    ║
  8.              ║files described later, is programmed entirely by   ║
  9.              ║me. I permit free use of version "b" for non-      ║
  10.              ║commercial applications, with all rights remaining ║
  11.              ║with me, in particular the sale of version b       ║
  12.              ║together with other products is not allowed.  Every║
  13.              ║copy must include this text unchanged.  Use for    ║
  14.              ║military purposes or corresponding research is     ║
  15.              ║forbidden!                                         ║
  16.              ║July 1990                                A. Koestli║
  17.              ╚═══════════════════════════════════════════════════╝
  18.  
  19. BC-FORTRAN77 Version b consists of a compiler, linker, module library and a 
  20. resident run-time system, which also contains a simple debugger.  This version 
  21. runs on an MS-DOS computer with 640kB RAM.  A hard disk is not required.  A 
  22. compiler for a programming course should become available as a result of this.  
  23. Then will come the corresponding compiler for the Atari ST and Amiga. 
  24.  
  25. I will still answer inquiries for sending another or newer version if 20 
  26. Deutchmarks (currency or check) to cover expenses for diskette, mailer, 
  27. postage and time is included.  I only send 3 1/2" diskettes. 
  28.  
  29. BC-FORTRAN77 version b consists of the following parts:
  30.  
  31.     LIES.TXT   This text
  32.     BCF.EXE    Compiler
  33.     BCL.EXE    Linker
  34.     BCRTSY.EXE Resident run-time system
  35.     LIB.B      Library of standard functions
  36.  
  37. When a copy is made all of the parts mentioned above must be included.
  38.  
  39. Installation.
  40. -------------
  41.  
  42. BEFORE the compiler, linker or program is started, the resident run-time 
  43. system MUST be loaded.  For this, just run the program BCRTSY.EXE. If you use 
  44. BC-FORTRAN77 regularly, place BCRTSY.EXE in your AUTOEXEC.BAT file. 
  45.  
  46. Copy the *.EXE files into a directory contained in the PATH and the LIB.B file 
  47. in an APPEND directory (see the MS-DOS commands PATH and APPEND). 
  48.  
  49. Compiler
  50. --------
  51.  
  52. The compiler is started by 
  53.  
  54.     BCF [-Option...] File...
  55.  
  56. If File does not contain a period, a .F will be appended.  The object file 
  57. will be placed in FILE.B. 
  58.  
  59. Example:
  60.  
  61.     BCF -D TEST.F
  62.  
  63. Compile TEST.F with the debug option into TEST.B
  64.  
  65.     BCF TEST SUB
  66.  
  67. Compile TEST.F into TEST.B and SUB.F into SUB.B
  68.  
  69.     BCF TEST.X
  70.  
  71. Compile TEST.X into TEST.B
  72.  
  73. Compiler Options
  74. ----------------
  75.  
  76. You can use /Option instead of -Option.
  77.  
  78.     -D Debug:      equivalent to -BVL
  79.     -B deBugcode:  implies -H and also produces debugger calls for 
  80.                    examination of field borders and substrings. 
  81.     -H parcHeck:   produces code for examination of parameter lists 
  82.                    and checks of stack overruns 
  83.     -V Varlist:    List of variables for debugger
  84.     -L Lineslist:  Line number list for debugger
  85.     -U Uppercase:  Changes lower-case into upper case characters (even 
  86.                    in character constants and formats).  Without this 
  87.                    option xy, XY, Xy and xY are four different 
  88.                    variables! 
  89.     -F Free input: Source program is not in FORTRAN format.  Non-standard!
  90.     -P Protocol:   registry of the compiled lines.
  91.     -S Short protocol:  One line per module with the size of the stack 
  92.                    frame and code in bytes. 
  93.     -O One:        produces one output file with name of the first 
  94.                    input file. 
  95.  
  96. Language Summary
  97. ----------------
  98.  
  99. BCC-FORTRAN77 compiles the complete standard from ANSI/ISO. The 
  100. language standard will, however, be violated by several peculiarities 
  101. (mostly these will be called extensions).  I strongly recommend that 
  102. these extensions not be used, since  they are non-standard and hence 
  103. not precisely defined. 
  104.  
  105. The most important of the "peculiarities" are:
  106.  
  107.     INTEGER*1      8 bit INTEGER
  108.     INTEGER*2      16 bit INTEGER
  109.     INTEGER*4      like INTEGER
  110.     LOGICAL*1      8 bit LOGICAL
  111.     LOGICAL*2      16 bit LOGICAL
  112.     LOGICAL*4      like LOGICAL
  113.     IMPLICIT NONE  turns off implicit type definitions
  114.     COMMON /%adr/  Absolute COMMON, adr is a constant or simple 
  115.                    variable which specifies the segment address 
  116.     EQUIVALENCE()  allows character and other types to be mixed in COMMON
  117.     Recursive subroutine calls
  118.     Names with a maximum of 8 characters (the standard is 6).
  119.  
  120. The most important restrictions are:
  121.  
  122.     32kB Code+SAVE/DATA for subroutines
  123.     32kB local data for subroutines (stack frame) 32kB for COMMON 
  124.     (actually 64kB, but the address of the last field must be <32k) 
  125.     700 subroutines per file 500 different COMMON blocks per file 
  126.  
  127. Less important are a series of restrictions where very large 
  128. subroutines give rise to error messages without surpassing the 32kB 
  129. code limit. 
  130.  
  131. Linker
  132. ------
  133.  
  134. The Linker is started by
  135.  
  136.     BCL [-Options...] File...
  137.  
  138. If File doesn't contain a period, a .B will be appended.  The 
  139. executable file will be created with the name of the first file but 
  140. with .EXE substituted for .B.  It must also search the LIB.B file in 
  141. order to link the standard functions and I/O routines. 
  142.  
  143. Example:
  144.  
  145.     BCL -S16 TEST SUB LIB
  146.  
  147. or
  148.  
  149.     BCL -S16 TEST.B SUB.B LIB.B
  150.  
  151. links the files TEST.B and SUB.B into the runnable program TEST.EXE with a 
  152. stack size of 16kB. 
  153.  
  154. Linker Options
  155. --------------
  156.  
  157.     -Sn Stack size will be set to n kB (max 64).  Without this option 
  158.         a 64kB stack will be used.  All local variables and fields for 
  159.         a subroutine will be placed on the stack. 
  160.  
  161.     -O  Optimize:  subroutines which are not called are omitted.
  162.  
  163.     -P  Protocol:  List the COMMON blocks and program modules
  164.  
  165. Restrictions
  166. ------------
  167.  
  168. The most important restriction lies in the size of RAM:  the size of 
  169. the program (without COMMON and stack) can only be as large as the 
  170. largest free memory block after loading BCL.  On the other hand, it is 
  171. possible to produce a program with large COMMONs and stack which will 
  172. not run in the available memory. 
  173.  
  174. The number of subroutines is limited to 3000, the number of COMMON 
  175. blocks to 1500.  (This is a result of the ridiculous 640kB limit of 
  176. MS-DOS.) 
  177.  
  178. Run Time System
  179. ---------------
  180.  
  181. The run time system BCRTSY.EXE contains the routines needed by a 
  182. FORTRAN77 program and must be made memory resident before any 
  183. FORTRAN77 programs are run. 
  184.  
  185. BCRTSY contains:
  186.  
  187.     Arithmetic routines:
  188.       32 bit INTEGER multiplication & division
  189.       REAL arithmetic
  190.       DOUBLE precision arithmetic
  191.       It uses the IEEE floating point format 
  192.       REAL:  7 decimal places, 32 bit 1 bit sign, 8 bit exponent, 24 
  193.          bit mantissa 
  194.       DOUBLE PRECISION:  14 decimal places, 64 bit 1 bit sign, 11 bit 
  195.          exponent, 52 bit mantissa 
  196.       A math coprocessor is not supported. (an 80x87 version exists, 
  197.          but I can't test it since I don't have the necessary 
  198.          hardware.) 
  199.       Character routines
  200.  
  201.     Debugger:
  202.       A simple debugger for finding errors. 
  203.       Also a run time error will give an error message and wait for a 
  204.          command. 
  205.       The debugger can also be activated by a key-stroke interrupting 
  206.       the program's execution if the program was created with the B 
  207.       option.  The following keys are recognized by the debugger as 
  208.       commands: 
  209.  
  210.       T   (Traceback)  Look back through the subroutine call stack and 
  211.           find the next higher module with line number if the program 
  212.           was compiled with the -L option. 
  213.  
  214.       U   (Untrace) Cancel all trace back actions.  This happens 
  215.           automatically when the